// 导入axios
import axios from 'axios';
// 导入Vue
import Vue from 'vue';
// 导入加载提示
import Toast from '@/plugin/Toast/index.js'
// Vue挂载Toast 执行intall放
Vue.use(Toast);
import {
	Message
} from 'element-ui';
import $store from '@/store/index.js'
// 导入路由
import $router from '@/router/index.js'
// 配置默认选项
const request = axios.create({
	// 请求的默认域名
	baseURL: "http://dida100.com:8888",
	timeout: 5000, //超时，请求5秒还没好，就返回失败

})

// 拦截请求头，添加加载提示 token（ajax开始）
request.interceptors.request.use(function(config) {
	// console.log(config);
	// console.log("请求加载中...")
	// 如果配置中有loading就显示加载提示
	if (config.loading) {
		Toast.show(config.loading, 5000) //显示加载提示
	}

	// 添加请求头(所有网络请求，都会添加请求头)
	config.headers.Authorization = "Bearer " + localStorage.getItem("token");
	return config;
})


// 拦截响应头，关闭加载提示（ajax结束）
request.interceptors.response.use(
	function(res) {
		// console.log("加载结束...")

		Toast.hide(); //请求结束，关闭加载提示
		return res;
	},
	function(err) {
		console.log("错误", err);
		// 同一错误处理（没有权限）
		if (err.response && err.response.data && err.response.data.code == 1) {
			Message({
				message: err.response.data.msg || '没有权限',
				type: 'warning'
			})
			// 执行注销
			$store.dispatch("logout")
			// 跳转到login页面 /
			var $route = $router.history.current;
			// 跳转到登录页面
			$router.replace("/?redirect=" + $route.fullPath);

		}else if( err.code=="ERR_BAD_REQUEST"){
			Message({
				message: "请求地址发生错误！",
				type: 'warning'
			})
		}

		Toast.hide(); //请求错误，关闭加载提示
		return err;
	})

// 导出
export default request;
// interceptors 拦截器 use使用 request请求 config配置  response 响应
// export 导出  default 默认 request请求
// base继承 URL地址 timeout超时 create创建
